package com.ruoyi.hr.controller.hr;

import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.hr.domain.salary.EmpDate;
import com.ruoyi.hr.domain.salary.EmpSalary;
import com.ruoyi.hr.service.EmpSalaryService;
import com.ruoyi.hr.util.utils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

import java.util.ArrayList;
import java.util.List;


@Controller
@RequestMapping("/empSalary")
public class EmpSalaryController extends BaseController {
    @Autowired
    EmpSalaryService empSalaryService;

    @Autowired
    OrgsController orgsController;

    private String prefix = "hr/empSalary";

    /**
     * 跳转分页页面
     */
    @GetMapping()
    public String user() {
        return prefix + "/empSalary";
    }

    /**
     * 获取分页数据以及数据总量
     */
    @PostMapping("/list")
    @ResponseBody
    public TableDataInfo list() {
        List<EmpSalary> empSalaryList = new ArrayList<EmpSalary>();
        if (utils.empSalaryList != null) {
            empSalaryList = utils.empSalaryList;
        }
        return getDataTable1(empSalaryList, empSalaryList.size());
    }

    @GetMapping("/importTemplate")
    @ResponseBody
    public AjaxResult importTemplate() {
        ExcelUtil<EmpSalary> util = new ExcelUtil<EmpSalary>(EmpSalary.class);
        return util.importTemplateExcel("薪资套模板");
    }

    @PostMapping("/importData")
    @ResponseBody
    public AjaxResult importData(MultipartFile file, boolean updateSupport,String jsid) throws Exception {
        ExcelUtil<EmpSalary> util = new ExcelUtil<EmpSalary>(EmpSalary.class);
        List<EmpSalary> empSalaryList = util.importExcel(file.getInputStream());

        ExcelUtil<EmpDate> util1 = new ExcelUtil<EmpDate>(EmpDate.class);
        List<EmpDate> empDateList = util1.importExcel(file.getInputStream());
        if (empSalaryList.size() == empDateList.size()) {
            for (int i = 0; i < empSalaryList.size(); i++) {
                empSalaryList.get(i).setEmpDate(empDateList.get(i));
            }
        }
        empSalaryService.salaryEmp(empSalaryList);
        utils.empSalaryList = empSalaryList;
        return AjaxResult.success(0);
    }


    @GetMapping("/exEmp")
    public String exEmp() {
        return prefix + "/exEmp";
    }


    @PostMapping("/export")
    @ResponseBody
    public AjaxResult export(Integer id) {
        List<String> AllID = new ArrayList<String>();//公司总ID或者部门总ID
        List<EmpSalary> empSalaryList = null;
        EmpDate empDate = new EmpDate();
        if (id >= 10000 && id < 30000) {
            AllID = orgsController.GetCompanyandSubsidiaryID(id - 10000 + "", "Comp");
            empSalaryList = empSalaryService.findEmpSalary(AllID);
        } else {
            AllID.add(id - 30000 + "");
            empSalaryList = empSalaryService.findEmpSalary(AllID);
        }
        for (EmpSalary empSalary : empSalaryList) {
            empSalary.setEmpDate(empDate);
        }
        ExcelUtil<EmpSalary> util = new ExcelUtil<EmpSalary>(EmpSalary.class);
        AjaxResult ajaxResult = util.exportExcel(empSalaryList, "用户数据");
        return util.exportExcel(empSalaryList, "用户数据");
    }
}

